コアサーバーのSSH接続にBitwardenのssh-agentを使う

このガイドでは、コアサーバー (Coreserver) へのSSHおよびSFTP接続において、Bitwardenのssh-agent機能を利用する方法を解説します。
Bitwardenはパスワードマネージャーとして広く知られていますが、SSHキーの管理機能も備えており、これを利用することでSSH接続のセキュリティと利便性を向上させることができます。

通常、SSH接続には秘密鍵と公開鍵のペアが使用されます。秘密鍵は安全な場所に保管する必要があり、従来はPC上の特定のファイル(例:~/.ssh/id_rsa)として保存されていました。
ssh-agentは、この秘密鍵をメモリ上に保持し、必要な時に自動的にSSH接続に使用してくれるプログラムです。これにより、秘密鍵を毎回指定したり、パスフレーズを都度入力したりする手間を省けます。

Bitwardenのssh-agent機能を利用するメリットは以下の通りです:

注意点: コアサーバーのコントロールパネルにある「SSH設定」で生成したRSA形式の秘密鍵をBitwardenにインポートし、ssh-agent経由で利用しようとすると、以下のようなエラーが発生して接続できません。

sign_and_send_pubkey: signing failed for RSA "**********" from agent: agent refused operation

これは、Bitwardenのssh-agentが期待する鍵の形式や処理と、コアサーバーのコントロールパネルで生成されるRSA鍵の間に互換性の問題があるためと考えられます。
また、現時点(本記事執筆時点)では、Bitwardenで新規に作成したED25519形式の公開鍵を、コアサーバーのコントロールパネル経由で直接インポートする機能は提供されていないようです。

解決方法

幸いなことに、コアサーバーのSSHサーバー自体は、より安全で推奨される鍵形式であるED25519をサポートしています。コントロールパネル経由での設定はできませんが、手動で設定することでこの問題は回避可能です。
具体的な手順は、BitwardenでED25519形式のSSHキーペア(秘密鍵と公開鍵)を新規に作成し、その公開鍵をコアサーバー上の~/.ssh/authorized_keysファイルに追記するというものです。
以下にその詳細な手順を説明します。

1. BitwardenでED25519鍵を作成する

手順:

  1. Bitwardenのデスクトップアプリまたはブラウザ拡張機能を開き、ログインします。
  2. 設定メニュー(通常は歯車アイコンなど)から「SSHキー」の項目を選択します。
  3. 「アイテムを追加」(または「+」アイコン)をクリックします。
  4. 「種類」で「ED25519」が選択されていることを確認します(通常はデフォルトです)。
  5. 「名前」の欄に、このSSHキーを識別するための任意の名前を入力します(例: Coreserver Key, My Server ED25519など)。
  6. 「保存」をクリックします。これにより、Bitwardenの保管庫内に新しいED25519の秘密鍵と公開鍵のペアが生成・保存されます。
  7. 保存後、作成したキーの項目をクリックすると、公開鍵(ssh-ed25519 AAAA...で始まる文字列)が表示されます。この公開鍵を後ほど使用します。
Bitwardenで鍵を作成

2. コアサーバーに公開鍵を登録する

手順:

  1. コアサーバーのコントロールパネルを開く
  2. "ツール"、"ファイルマネージャー"を選択する
  3. ファイルマネージャーを開く
  4. ".ssh"をダブルクリックする
  5. .sshフォルダを開く
  6. "authorized_keys"を右クリックして"編集"を選択する
  7. もし .ssh フォルダが存在しない場合は、ファイルマネージャーで新しく作成してください。その際、可能であればフォルダのパーミッション(権限)を 700 (drwx------) に設定します。
    同様に、.ssh フォルダ内に authorized_keys ファイルが存在しない場合は、新規ファイルとして作成してください。その際、可能であればファイルのパーミッションを 600 (-rw-------) に設定します。
    コアサーバーのファイルマネージャーでパーミッションを直接設定できない場合、後述のSSH接続が成功した後に、ターミナルから以下のコマンドで設定してください:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

    authorized_keysを編集
  8. 手順1でBitwardenに表示された公開鍵(ssh-ed25519 AAAA...で始まる文字列全体)をコピーします。
  9. ファイルマネージャーで開いたauthorized_keysファイルの内容の末尾に、コピーした公開鍵を貼り付けます。既に他の公開鍵が登録されている場合は、改行して新しい行に貼り付けてください。各公開鍵は1行で記述します。
  10. 公開鍵を貼り付ける
  11. "Save File"をクリックして保存する

3. SSHで接続を確認する

Bitwardenのssh-agentが有効になっていることを確認してください。Bitwardenの設定で「SSHエージェントを有効にする」オプションがオンになっている必要があります。

Bitwarden SSH-AGNET設定

手順:

Windowsの場合はWindowsターミナル、macOSやLinuxの場合はターミナルを開き、以下のコマンドを実行します。
[ユーザー名]はコアサーバーのユーザー名、[サーバー名]はコアサーバーのホスト名(例: example.coreserver.jp)に置き換えてください。

PS> ssh [ユーザー名]@[サーバー名]

初めてこのキーを使用して接続する場合や、Bitwardenがロックされている場合などには、BitwardenがSSHキーの使用許可を求めるダイアログを表示します。
内容を確認し、「許可」または「Approve」をクリックします。これにより、Bitwardenに保存されている秘密鍵がssh-agent経由でSSH接続に使用されます。

Bitwardenのダイアログ

正常に認証されると、サーバーにログインでき、以下のようなコマンドプロンプトが表示されます。

[ユーザー名]@サーバー名 ~]$

これで、Bitwarden ssh-agentを利用したコアサーバーへのSSH接続設定は完了です。SFTPクライアントでも、SSHキー認証(または公開鍵認証)を選択し、ssh-agentを利用する設定にすることで、同様に接続可能になります。

4. WinSCPなどPuTTYベースのクライアントで利用する (winssh-pageant)

Windowsで人気のSFTP/FTPクライアントであるWinSCPや、SSHクライアントのPuTTYは、標準ではBitwardenのssh-agent(OpenSSH互換エージェント)を直接利用できません。これらのツールは、PuTTY付属の鍵管理エージェントであるPageantと連携するように設計されています。

しかし、winssh-pageant というツールを利用することで、Bitwardenのssh-agent (OpenSSH Agent) とPageantの間の橋渡しをすることができます。これにより、WinSCPやPuTTYからもBitwardenで管理しているSSHキーを利用できるようになります。

手順:

  1. winssh-pageantのダウンロードと実行:
    1. winssh-pageantのGitHubリリースページから、最新のwinssh-pageant.exeをダウンロードします。
    2. ダウンロードしたwinssh-pageant.exeを実行します。このツールはバックグラウンドで動作し、タスクトレイにアイコンが表示される場合があります(表示されないこともあります)。特に設定画面などはありません。
    3. PC起動時に自動で起動させたい場合は、スタートアップフォルダにwinssh-pageant.exeのショートカットを配置すると便利です。
  2. Bitwardenのssh-agentの確認:

    Bitwardenデスクトップアプリの設定が以下の図のように「SSHエージェントを有効にする」がオンになっていることを確認してください。また、Bitwardenがアンロック状態である必要があります。

    Bitwarden SSH-AGNET設定
  3. WinSCPでの設定と接続:
    1. WinSCPを起動します。
    2. 新しいセッションを設定するか、既存のセッションを編集します。
    3. 「高度なサイト設定」を開き(通常は「編集」ボタンの隣の「高度な設定」ボタン)、左側のナビゲーションから「SSH」>「認証」を選択します。
    4. 「認証パラメータ」セクションにある「Pageantを利用した認証を試みる」のチェックボックスがオンになっていることを確認します(通常はデフォルトでオンです)。
    5. WinSCP Pageant設定

      (上記画像は設定例です。実際のWinSCPのバージョンによってUIが若干異なる場合があります。)

    6. 秘密鍵ファイルの指定は不要です。winssh-pageantがBitwardenのssh-agentから鍵情報を取得し、Pageantとして振る舞うため、WinSCPはPageant経由で鍵を利用します。
    7. 設定を保存し、接続を試みます。
    8. BitwardenがSSHキーの使用許可を求めるダイアログを表示したら、「許可」をクリックします。

これで、winssh-pageant を介して、WinSCPやPuTTYなどのPageant対応クライアントでもBitwardenのssh-agentに登録された鍵を利用してサーバーに接続できるようになります。

トラブルシューティングのヒント:

以上で、Bitwardenのssh-agentを使用して、より安全かつ便利にコアサーバーへSSH/SFTP接続する設定が完了しました。


「悩んだ設定たち」へ

トップページへ